package io.renren.common.utils;

import java.util.concurrent.TimeUnit;

/**
 * 常量
 * 
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2016年11月15日 下午1:23:52
 */
public class Constant {
	/** 超级管理员ID */
	public static final int SUPER_ADMIN = 1;


	/**
	 * 菜单类型
	 * 
	 * @author chenshun
	 * @email sunlightcs@gmail.com
	 * @date 2016年11月15日 下午1:24:29
	 */
    public enum MenuType {
        /**
         * 目录
         */
    	CATALOG(0),
        /**
         * 菜单
         */
        MENU(1),
        /**
         * 按钮
         */
        BUTTON(2);

        private int value;

        MenuType(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }

    /**
     * 订单组状态
     */

    public enum OrderGroupStatus{
        /**
         * 取消
         */
        DELETE("取消");

        private String value;
        OrderGroupStatus(String value){
            this.value = value;
        }

        public String getValue(){
            return this.value;
        }

    }

    /**
     * 订单状态
     */
    public enum OrderStatus{
        /**
         * 新建
         */
        NEW("新建","0"),
        /**
         * 取消
         */
        DELETE("取消","1"),

        /**
         * 以编组
         */
        ALREADY_CREATED_GROUP("已编组","2"),

        /**
         * 取消编组
         */
        CANCEL_GROUP("取消编组","3"),

        /**
         * 以调度
         */
        ALREADY_CREATED_DISPATCH("已调度","4"),

        /**
         * 取消调度
         */

        CANCEL_DISPATCH("取消调度","5");




        private String value;
        private String name;

        OrderStatus(String name,String value) {
            this.value = value;
            this.name = name;
        }

        public String getValue() {
            return value;
        }

        public String getName() {
            return name;
        }

        public static String getName(String value) {
            OrderStatus[] values = values();
            for (OrderStatus orderStatus : values) {
                if (orderStatus.getValue().equals(value)) {
                    return orderStatus.getName();
                }
            }
            return null;
        }
    }



    public enum  AddressProperty{


        CENTER_ADDRESS("address_center"),

        TO_ADDRESS("address_to"),

        FROM_ADDRESS("address_from");

        private String property;

        AddressProperty(String property) {
            this.property=property;
        }

        public String getProperty() {
            return property;
        }

    }

    public static String ADDRESS_PROPERTY="address-property";


    /**
     * 定时任务状态
     * 
     * @author chenshun
     * @email sunlightcs@gmail.com
     * @date 2016年12月3日 上午12:07:22
     */
    public enum ScheduleStatus {
        /**
         * 正常
         */
    	NORMAL(1),
        /**
         * 暂停
         */
    	PAUSE(0);

        private int value;

        ScheduleStatus(int value) {
            this.value = value;
        }
        
        public int getValue() {
            return value;
        }
    }

    /**
     * 云服务商
     */
    public enum CloudService {
        /**
         * 七牛云
         */
        QINIU(1),
        /**
         * 阿里云
         */
        ALIYUN(2),
        /**
         * 腾讯云
         */
        QCLOUD(3);

        private int value;

        CloudService(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }


    public static Long getRedisKeyExpireTimeDayToSecond(long days){
        return TimeUnit.DAYS.toSeconds(days);
    }

    public static Long getRedisKeyExpireTimeHoursToSecond(long hours){
        return TimeUnit.HOURS.toSeconds(hours);
    }

    public static Long getRedisKeyExpireTimeMinutesToSecond(long minutes){
        return TimeUnit.MINUTES.toSeconds(minutes);
    }


}
